Decoders are used in read only memories to decode input data for presentation to the ROM to allow the ROM to execute an operation programmed into the ROM if the proper input sequence of data is presented.
There are several problems with making a decoders. In some decoders, a microcontroller gives a sequence or coding to enter a specific operation which is encoded into a read only memory (ROM) and the enabling circuitry for the ROM. Such specific operations include by way of example read array, read configuration register, program, erase, suspend, and the like.
A command user interface (CUI) is a state machine that recognizes multi-cycle microprocessor commands. The commands are entered using multi-clock cycle operations. For each cycle, the CUI changes state depending upon the current inputs and the decoding of the previous state of the system. A typical CUI implementation is one which is based in logic gate network syntheses starting from circuit equations and automated layout generation. While this method provides fast solutions for layout generation, it is very inflexible. If even one command equation changes, the entire circuit layout and subsequent generation flow must also be re-executed. This results in significant delays in production. When delays in production occur, money is lost.
Common state machines used for decoding include Mealy and Moore Model state machines.